um "objeto" pode tomar diferentes estados ao mesmo tempo, ou seja, é possível verificar todas as possibilidades de resultado de uma função no mesmo instante (quantum)
Funcionamento e estrutura básica de um computador
Entrada: leitura de dados
Processamento: operações lógicas e aritméticas
Saída: escrita ou gravação de resultados
Modelo de Von Neumann
Matemático americano que propôs, em 1940, o modelo base utilizado nos computadores atuais.
O Processamento segue as instruções (algoritmo) armazenadas em uma memória, para ler canais de entrada, enviar comandos de saída e alterar as informações contidas em uma memória de dados.
Modelo de Von Neumann
Unidade Central de Processamento (UCP)
cérebro do computador, conhecido como CPU
local onde os dados são processados
função de interpretar e executar os programas
coordena e executa as instruções e as operações aritméticas e lógicas
Modelo de Von Neumann
Unidade de Controle (UC)
gerencia todos os recursos do computador
coordena e controla todas as atividades realizadas em uma sequência lógica e sincronizada
recebe instruções de programas, decodifica e dirige os componentes para que possam ser executados
Modelo de Von Neumann
Unidade Aritmética e Lógica (UAL)
responsável pela execução de todas as operações aritméticas e lógicas realizadas durante o processamento
Modelo de Von Neumann
Memória Principal
componente responsável pelo armazenamento de dados e instruções (eletrônico e mais rápido)
Modelo de Von Neumann
Memória ROM (Ready Only Memory)
apenas leitura
Modelo de Von Neumann
Memória RAM (Random Access Memory)
memória temporária que armazena dados e programas durante a execução e que é apagada quando se desliga o computador
Modelo de Von Neumann
Memória Cache
memória fisicamente integrada no processador, cuja finalidade é melhorar a performance do mesmo, reduzindo o tempo gasto com a transferência
Modelo de Von Neumann
Memória Secundária
constituída de componentes mecânicos, eletrônicos, magnéticos, para armazenar permanentemente dados e programas (HD, Pendrive, cartão de memória, etc)
Modelo de Von Neumann
Unidade de Entrada
unidades através das quais dados e instruções são fornecidos ao computador
unidades através das quais o computador fornece os resultados de um programa para que sejam mostrados ou armazenados
exemplos: impressoras, unidades gravadores de disco, monitores de vídeo, entre outros
Modelo de Von Neumann
Exemplo: programa que lê dois valores e mostra o resultado da soma
Entrar com 2 valores (Unidade de Entrada)
Somar (UCP e Memória Principal)
Mostrar Valores (Unidade de Saída)
Hardware
conjunto dos constituintes físicos do computador
exemplo: teclado, mouse, impressoras, gabinetes, entre outros
Software
conjunto de todos os programas de um computador
exemplo: word, excel, browsers
Sistema Operacional
programa que gerencia o funcionamento do computador, abstraindo principalmente o hardware
exemplo: windows, linux, mac os
Linguagem de Programação
Método padronizado para comunicar instruções para um computador
Código Fonte X Programa
Código Fonte: instruções escritas em uma linguagem de programação
Programa: surge após a compilação do código fonte
Linguagens de Baixo Nível X Alto Nível
Baixo Nível: linguagens de máquina, escrita em binário e entendida pelo hardware
Alto Nível: linguagem destinada ao ser humana, próxima da natural, para facilitar a programação
Linguagem Assembly
seus comandos tem relação direta com o hardware
última camada de programação antes do hardware
para fazer programas em assembly, é necessário um tradutor Assembler (programa), que traduz as instruções para o hardware
Compilador X Interpretador
são programas que traduzem programas escritos em uma linguagem de programação para uma linguagem de máquina
Compilador X Interpretador
Compilação: tradução do programa escrito numa linguagem de alto nível para linguagem de máquinas, gerando um novo arquivo.
Compilador X Interpretador
Interpretação: tradução de um programa escrito numa linguagem de alto nível para a linguagem de máquina, seguida da execução deste programa. A tradução é feita em tempo de execução linha-a-linha do código, e caso alguma esteja errada as outras já foram apresentadas ao usuário.
Paradigmas de Programação
Linguagem Imperativa/Procedural: orientada por procedimentos, sequência de comandos passo-a-passo.
exemplos: C, Pascal, Basic, Clipper
Paradigmas de Programação
Linguagem Declarativa: avaliação de funções matemáticas (Funcional/Lógica).
exemplos: Prolog, Haskell, Lisp
Paradigmas de Programação
Linguagem Orientada a Objeto: POO, um programa é considerado como uma coleção de objetos com característcas e ações.